package com.example.exceldemo.service;

import com.example.exceldemo.model.TaskStatus;

/**
 * 任务服务接口
 * 管理异步任务的创建、查询和更新
 */
public interface TaskService {
    
    /**
     * 创建一个新的任务
     * 
     * @param taskType 任务类型
     * @param metadata 任务元数据
     * @return 任务状态
     */
    TaskStatus createTask(String taskType, String metadata);
    
    /**
     * 获取任务状态
     * 
     * @param taskId 任务ID
     * @return 任务状态，如果任务不存在则返回null
     */
    TaskStatus getTaskStatus(String taskId);
    
    /**
     * 更新任务进度
     * 
     * @param taskId 任务ID
     * @param progress 进度值
     * @return 更新后的任务状态
     */
    TaskStatus updateTaskProgress(String taskId, int progress);
    
    /**
     * 完成任务
     * 
     * @param taskId 任务ID
     * @param resultData 任务结果数据
     * @return 更新后的任务状态
     */
    TaskStatus completeTask(String taskId, String resultData);
    
    /**
     * 标记任务为失败
     * 
     * @param taskId 任务ID
     * @param errorMessage 错误信息
     * @return 更新后的任务状态
     */
    TaskStatus failTask(String taskId, String errorMessage);
} 